home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / A-COMAL Series / (k)aao.d64 / hamurabi.lst < prev    next >
File List  |  2009-01-24  |  7KB  |  235 lines

  1. 0010 // DELETE "HAMMURABI"
  2. 0020 // SAVE   "HAMMURABI"
  3. 0030 //   BY MARK SKOPINSKY
  4. 0040 //
  5. 0050 INIT
  6. 0060 FOR YEAR:=1 TO 10 DO
  7. 0070   BEGGING'STEWARD
  8. 0080   REPORT'UPDATE
  9. 0090   BUY'LAND
  10. 0100   IF BUY=0 THEN SELL'LAND
  11. 0110   FEED'PEOPLE
  12. 0120   PLANT'CROPS
  13. 0130   DO'RATS'ATTACK
  14. 0140   POP'INCREASE
  15. 0150   PLAGUE'CHANCE
  16. 0160 ENDFOR YEAR
  17. 0170 FINAL'REPORT
  18. 0180 END'GAME
  19. 0190 //
  20. 0200 PROC INIT 
  21. 0210   PCNT'DEAD:=0; POP'PCNT:=0
  22. 0220   POP:=95; GRAIN:=3; ACRES:=1000
  23. 0230   HARVEST:=3000; RAT'FOOD:=200
  24. 0240   STORED:=HARVEST-RAT'FOOD
  25. 0250   SETTLERS:=5; NUM'DEAD:=0
  26. 0260 ENDPROC INIT
  27. 0270 //
  28. 0280 PROC BEGGING'STEWARD 
  29. 0290   FOR X:=1 TO 25 DO PRINT // CLEAR SCREEN
  30. 0300   PRINT "╚AMMURABI, YOUR HUMBLE STEWARD BEGS TO"
  31. 0310   PRINT "REPORT THAT IN ┘EAR";
  32. 0320   PRINT YEAR;"OF YOUR REIGN:"
  33. 0330   PRINT 
  34. 0340   IF NUM'DEAD=0 THEN
  35. 0350     PRINT "╬ONE OF YOUR LOYAL SUBJECTS PERISHED,"
  36. 0360   ELSE 
  37. 0370     PRINT NUM'DEAD;
  38. 0380     PRINT "OF YOUR LOYAL SUBJECTS PERISHED,"
  39. 0390   ENDIF 
  40. 0400   PRINT "AND";SETTLERS;"NEWCOMERS SETTLED IN THE CITY."
  41. 0410   PRINT 
  42. 0420   POP:+SETTLERS
  43. 0430 ENDPROC BEGGING'STEWARD
  44. 0440 //
  45. 0450 PROC REPORT'UPDATE 
  46. 0460   PRINT "┘OUR SUBJECTS NOW NUMBER";POP,"."
  47. 0470   PRINT 
  48. 0480   PRINT "╘HE CITY OWNS";ACRES;"ACRES OF LAND."
  49. 0490   PRINT "╘HE HARVEST YIELDED";HARVEST;"BUSHELS,"
  50. 0500   PRINT USING "OR #.# BUSHELS HARVESTED PER ACRE": HARVEST/ACRES
  51. 0510   IF RAT'FOOD=0 THEN
  52. 0520     PRINT "╥ODENTS ATE NONE OF THE GRAIN."
  53. 0530   ELSE 
  54. 0540     PRINT "╥ODENTS ATE";RAT'FOOD;"BUSHELS OF GRAIN."
  55. 0550   ENDIF 
  56. 0560   PRINT "╘HE GRANARIES NOW HOLD";STORED;"BUSHELS."
  57. 0570   PRINT 
  58. 0580   PRICE:=RND(17,26)
  59. 0590   PRINT "╠AND IS TRADING AT";PRICE;"BUSHELS PER ACRE."
  60. 0600 ENDPROC REPORT'UPDATE
  61. 0610 //
  62. 0620 PROC BUY'LAND 
  63. 0630   REPEAT 
  64. 0640     INPUT "╚OW MANY ACRES DO YOU DESIRE? ": BUY
  65. 0650     IF PRICE*BUY>STORED THEN WRONG'GRAIN
  66. 0660   UNTIL BUY*PRICE<=STORED
  67. 0670   ACRES:+BUY; STORED:-GRAIN*BUY
  68. 0680 ENDPROC BUY'LAND
  69. 0690 //
  70. 0700 PROC SELL'LAND 
  71. 0710   REPEAT 
  72. 0720     INPUT "╚OW MANY ACRES SHOULD ╔ SELL? ": SELL
  73. 0730     IF SELL>ACRES THEN WRONG'ACRES
  74. 0740   UNTIL SELL<=ACRES
  75. 0750   ACRES:-SELL; STORED:+PRICE*SELL
  76. 0760 ENDPROC SELL'LAND
  77. 0770 //
  78. 0780 PROC FEED'PEOPLE 
  79. 0790   REPEAT 
  80. 0800     PRINT 
  81. 0810     PRINT "╚OW MANY BUSHELS OF GRAIN DO"
  82. 0820     INPUT "YOU WISH TO FEED YOUR PEOPLE? ": FOOD
  83. 0830     IF FOOD=0 THEN STEWARD'QUITS
  84. 0840     IF FOOD>STORED THEN
  85. 0850       WRONG'GRAIN
  86. 0860     ENDIF 
  87. 0870   UNTIL FOOD<=STORED
  88. 0880   STORED:-FOOD
  89. 0890 ENDPROC FEED'PEOPLE
  90. 0900 //
  91. 0910 PROC PLANT'CROPS 
  92. 0920   REPEAT 
  93. 0930     OK:=FALSE
  94. 0940     PRINT 
  95. 0950     PRINT "╚OW MANY ACRES OF LAND DO"
  96. 0960     INPUT "YOU WISH TO PLANT WITH GRAIN? ": PLANT
  97. 0970     PRINT 
  98. 0980     IF PLANT>ACRES THEN
  99. 0990       WRONG'ACRES
  100. 1000     ELIF PLANT/2>STORED THEN
  101. 1010       WRONG'GRAIN
  102. 1020     ELIF PLANT>10*POP THEN
  103. 1030       PRINT "┬UT YOU HAVE ONLY";POP;"SUBJECTS"
  104. 1040       PRINT "TO TEND THE FIELDS! ╬OW THEN,"
  105. 1050     ELSE 
  106. 1060       OK:=TRUE
  107. 1070     ENDIF 
  108. 1080   UNTIL OK
  109. 1090   STORED:-(PLANT DIV 2)
  110. 1100 ENDPROC PLANT'CROPS
  111. 1110 //
  112. 1120 PROC DO'RATS'ATTACK 
  113. 1130   PRODUCTION:=RND(1,6)
  114. 1140   RAT'FOOD:=0
  115. 1150   IF RND(1,100)>50 THEN
  116. 1160     RAT'FOOD:=STORED DIV RND(1,6)
  117. 1170   ENDIF 
  118. 1180   HARVEST:=STORED+PLANT*PRODUCTION
  119. 1190   STORED:=HARVEST-RAT'FOOD
  120. 1200 ENDPROC DO'RATS'ATTACK
  121. 1210 //
  122. 1220 PROC POP'INCREASE 
  123. 1230   NUM'DEAD:=0
  124. 1240   SETTLERS:=INT(RND(1,6)*(20*ACRES+STORED)/POP/100+1)
  125. 1250   MEALS:=FOOD DIV POP
  126. 1260 ENDPROC POP'INCREASE
  127. 1270 //
  128. 1280 PROC PLAGUE 
  129. 1290   NUM'DEAD:=POP DIV 2
  130. 1300   POP:-NUM'DEAD
  131. 1310   PRINT "┴ HORRIBLE PLAGUE STRUCK! ╚ALF OF THE"
  132. 1320   PRINT "PEOPLE DIED."
  133. 1330 ENDPROC PLAGUE
  134. 1340 //
  135. 1350 PROC PLAGUE'CHANCE 
  136. 1360   IF MEALS<20 THEN
  137. 1370     IF RND(1,100)<PCNT'DEAD THEN
  138. 1380       PLAGUE
  139. 1390     ELSE 
  140. 1400       STARVE'THE'POPULATION
  141. 1410     ENDIF 
  142. 1420   ENDIF 
  143. 1430 ENDPROC PLAGUE'CHANCE
  144. 1440 //
  145. 1450 PROC STARVE'THE'POPULATION 
  146. 1460   NUM'DEAD:=POP-INT(POP*(MEALS/20))
  147. 1470   IF NUM'DEAD>.45*POP THEN STARVED
  148. 1480   POP'PCNT:=((YEAR-1)*POP'PCNT+NUM'DEAD*100/POP)/YEAR
  149. 1490   POP:-NUM'DEAD
  150. 1500   PCNT'DEAD:+NUM'DEAD
  151. 1510 ENDPROC STARVE'THE'POPULATION
  152. 1520 //
  153. 1530 PROC STARVED 
  154. 1540   PRINT 
  155. 1550   PRINT "┘OU STARVED";NUM'DEAD;"PEOPLE IN ONE YEAR!!"
  156. 1560   MISMANAGEMENT
  157. 1570 ENDPROC STARVED
  158. 1580 //
  159. 1590 PROC MISMANAGEMENT 
  160. 1600   PRINT "─UE TO THIS EXTREME MISMANAGEMENT YOU"
  161. 1610   PRINT "HAVE NOT ONLY BEEN IMPEACHED AND"
  162. 1620   PRINT "THROWN OUT OF OFFICE, BUT YOU HAVE"
  163. 1630   PRINT "ALSO BEEN DECLARED ╬ATIONAL ╞INK!!!"
  164. 1640   END'GAME
  165. 1650 ENDPROC MISMANAGEMENT
  166. 1660 //
  167. 1670 PROC WRONG'GRAIN 
  168. 1680   PRINT 
  169. 1690   PRINT "╚AMMURABI, THINK AGAIN. ┘OU HAVE ONLY"
  170. 1700   PRINT STORED;"BUSHELS OF GRAIN. ╬OW THEN,"
  171. 1710 ENDPROC WRONG'GRAIN
  172. 1720 //
  173. 1730 PROC WRONG'ACRES 
  174. 1740   PRINT 
  175. 1750   PRINT "╚AMMURABI, THINK AGAIN. ┘OU ONLY OWN"
  176. 1760   PRINT ACRES;"ACRES. ╬OW THEN,"
  177. 1770 ENDPROC WRONG'ACRES
  178. 1780 //
  179. 1790 PROC STEWARD'QUITS 
  180. 1800   PRINT 
  181. 1810   PRINT "╚AMMURABI, ╔ CANNOT DO WHAT YOU WISH."
  182. 1820   PRINT "╟ET YOURSELF ANOTHER STEWARD!!!!!!"
  183. 1830   END'GAME
  184. 1840 ENDPROC STEWARD'QUITS
  185. 1850 //
  186. 1860 PROC FINAL'REPORT 
  187. 1870   PRINT "╔N YOUR 10-YEAR TERM OF OFFICE,";INT(POP'PCNT),"%"
  188. 1880   PRINT "OF THE POPULATION STARVED PER YEAR,"
  189. 1890   PRINT "ON THE AVERAGE, ╔.┼. A TOTAL OF";INT(PCNT'DEAD)
  190. 1900   PRINT "PEOPLE DIED!!"
  191. 1910   LAND:=ACRES/POP
  192. 1920   PRINT "┘OU STARTED WITH 10 ACRES PER PERSON"
  193. 1930   PRINT "AND ENDED WITH";LAND;"PER PERSON."
  194. 1940   PRINT 
  195. 1950   FOR T:=1 TO 5000 DO NULL
  196. 1960   IF POP'PCNT>33 OR LAND<7 THEN
  197. 1970     MISMANAGEMENT
  198. 1980   ELIF POP'PCNT>10 OR LAND<9 THEN
  199. 1990     NERO'AND'IVAN
  200. 2000   ELIF POP'PCNT>3 OR LAND<10 THEN
  201. 2010     FAIR
  202. 2020   ELSE 
  203. 2030     VERY'GOOD
  204. 2040   ENDIF 
  205. 2050 ENDPROC FINAL'REPORT
  206. 2060 //
  207. 2070 PROC VERY'GOOD 
  208. 2080   PRINT "┴ FANTASTIC PERFORMANCE! ├HARLEMAGNE,"
  209. 2090   PRINT "─ISRAELI, AND ╩EFFERSON COMBINED COULD"
  210. 2100   PRINT "NOT HAVE DONE BETTER!"
  211. 2110 ENDPROC VERY'GOOD
  212. 2120 //
  213. 2130 PROC NERO'AND'IVAN 
  214. 2140   PRINT "┘OUR HEAVY-HANDED PERFORMANCE SMACKS OF"
  215. 2150   PRINT "╬ERO AND ╔VAN THE ╘ERRIBLE. ╘HE PEOPLE"
  216. 2160   PRINT "(REMAINING) FIND YOU AN UNPLEASANT"
  217. 2170   PRINT "RULER, AND, FRANKLY, HATE YOUR GUTS!!"
  218. 2180 ENDPROC NERO'AND'IVAN
  219. 2190 //
  220. 2200 PROC FAIR 
  221. 2210   PRINT "┘OUR PERFORMANCE COULD HAVE BEEN SOME-"
  222. 2220   PRINT "BETTER, BUT REALLY WASN'T TOO BAD."
  223. 2230   PRINT RND(1,POP*.8);
  224. 2240   PRINT "PEOPLE WOULD DEARLY LIKE TO SEE YOU"
  225. 2250   PRINT "ASSASSINATED, BUT WE ALL HAVE OUR"
  226. 2260   PRINT "TRIVIAL LITTLE PROBLEMS."
  227. 2270 ENDPROC FAIR
  228. 2280 //
  229. 2290 PROC END'GAME 
  230. 2300   PRINT 
  231. 2310   PRINT "╙O LONG FOR NOW."
  232. 2320   PRINT 
  233. 2330   END // OF THE GAME
  234. 2340 ENDPROC END'GAME
  235.